package com.wisevar.thirdplatform.gateway.model.invoiceorder;

import com.wisevar.thirdplatform.gateway.model.common.CompanyIdParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

@Data
public class SyncInvoiceOrderParam extends CompanyIdParam implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("平台开票订单编号")
    @NotEmpty(message = "平台开票订单编号不能为空")
    private String orderNo;

    @ApiModelProperty("开票申请时间（系统默认为当前时间），格式：yyyy-MM-dd HH:mm:ss")
    private String applyTime;

    @ApiModelProperty("开票类型：1  增值税普通发票（纸质）；2 增值税专用发票（纸质）；3 增值税普通发票电子票（纸电）；" +
            "4 增值税专用发票电子票（纸电）； 5 增值税普通发票电子票（数电）；6 增值税专用发票电子票（数电）；")
    @NotNull(message = "开票类型不能为空")
    private Integer invoiceType;

    @ApiModelProperty("开票备注")
    private String remarks;

    @ApiModelProperty("发票用途")
    private String purpose;

    @ApiModelProperty("开票类目明细")
    @NotEmpty(message = "开票类目明细不能为空")
    @Valid
    private List<InvoiceSubjectItem> invoiceSubjectItems;
}
